		Notifier.prototype.copy = function() {
			if (this.hasOwnProperty('result'))
				throw new Error("You can not copy an event notifier after it has been called");
			var copy = new Notifier;
			for(var i in this.topFrames) {
				if (this.topFrames[i]._r) {
					function makeCopy(orig) {
						var newCopy = {};
						for (j in orig) 
							newCopy[j] = (j =='_r' || j=='parentFrame') ? makeCopy(orig[j]) : orig[j];					
						return newCopy;
					}
					push(copy.topFrames,makeCopy(this.topFrames[i]));					
				}
			}
			var orig= this;
			copy.notify = function(retValue) {
				orig.notify(specificNotify={retValue:retValue,targetFrames:copy.topFrames});
			}
			return copy;
		}